iT邦幫忙

2024 iThome 鐵人賽

DAY 0
0

今天練習是利用Hugging Face API Token來做翻譯文本的練習,跟昨天練習不同的是,API 能夠直接調用 Hugging Face 提供的翻譯模型,無需本地安裝任何模型或依賴繁瑣的硬件要求。通過遠程請求,我們可以快速獲得高質量的翻譯結果,這也提升了操作的靈活性。

在這個練習中,我們將學習如何通過 Hugging Face API:

  1. 使用 API Token 調用翻譯模型。
  2. 發送文本進行翻譯,並接收翻譯結果。
  3. 探討如何根據不同語言自動選擇適合的翻譯模型。

這不僅提升了文本翻譯的效率,也展示了 API 的強大功能,特別是在處理多語言文本時具備優勢。

步驟 1:建立 Hugging Face API Token
登入 Hugging Face 的 官方網站,若你還沒有帳號,請先註冊。
進入「Settings」頁面,找到「Access Tokens」部分,並生成一個新的 API token。記得複這次練習使用 Hugging Face API 進行翻譯,因此只需勾選Make calls to the serverless Inference API,允許對「推理」(Inference)功能的訪問。

生成token畫面如下,記得將API Tokens(一串序號)複製下來 :
https://ithelp.ithome.com.tw/upload/images/20240923/20168005IxBh4eIH3b.png

步驟 2:Google Colab 環境設置
在 Google Colab 中打開一個新的 Notebook,並安裝 requests 套件來處理 API 請求。
!pip install requests

步驟 3:設定 API 使用程式碼
在 Notebook 中輸入以下 Python 程式碼,這將會利用 Hugging Face 的翻譯模型進行 API 請求。

import requests

# Hugging Face API 的 URL
API_URL = "https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-en-fr"

# Hugging Face API token (將 YOUR_HUGGINGFACE_TOKEN 替換成你的 API token)
headers = {"Authorization": "Bearer YOUR_HUGGINGFACE_TOKEN"}

# 查詢函式,用來向 API 發送請求
def query(payload):
    response = requests.post(API_URL, headers=headers, json=payload)
    return response.json()

# 發送請求並翻譯文本
data = query({"inputs": "Hello, how are you?"})
print(data)

步驟 4:運行程式碼並查看翻譯結果

  • 在 API_URL 中,我們使用了 Hugging Face 提供的模型 Helsinki-NLP/opus-mt-en-fr,這個模型會把英文翻譯成法文。
  • payload 是我們要發送的文本,這裡是 "Hello, how are you?"
  • 當我們發送請求後,API 會返回 JSON 格式的翻譯結果,並輸出到 Colab 中。

步驟 5:輸出解釋
在運行程式碼後,你應該會看到類似以下的輸出:
https://ithelp.ithome.com.tw/upload/images/20240923/20168005r5DVV2YMH9.png

步驟 6:錯誤處理
為了讓程式更穩定,讓我們加入一些錯誤處理功能,以防止 API 請求失敗或無效輸入導致錯誤:

def query(payload):
    try:
        response = requests.post(API_URL, headers=headers, json=payload)
        response.raise_for_status()  # 檢查 HTTP 請求是否成功
        return response.json()
    except requests.exceptions.RequestException as e:
        return f"An error occurred: {str(e)}"

# 發送請求並翻譯文本
data = query({"inputs": "Good evening!"})
print(data)

這樣就可以更好地應對請求失敗的情況。

**筆記 - Hugging face API的應用場景 : **
在使用Hugging face API時,覺得它就像一個「店員」,我們呼叫它,跟它「點菜」,向API傳遞需求,接著,它再幫我們跟「廚師」講我們要的菜,Hugging Face 平台上訓練好的各種 NLP 模型,能夠處裡自然語言處理相關的功能,像是翻譯文本、總結文章等。

一開始覺得Hugging face API就像函數一樣,呼叫它,它幫我們做某些功能。但是在執行的環境其實很不一樣。具體來講兩者在執行環境與應用場景的比較為下:

https://ithelp.ithome.com.tw/upload/images/20240923/20168005ag8s3U3biD.png

這兩者的應用場景大不相同:

API 利用遠端請求(remote request) 的方式來呼叫模型,就是調用一個外部服務(如 Hugging Face 的 NLP 模型),你的應用程序發送請求,然後接收處理結果。

函數 則是利用本地執行(Local Execution) 的方式,下載一個機器學習模型並在本地計算機上運行,處理數據。

總結如下:

API 遠程請求: 適合輕量級應用、無法使用高性能硬件的場景,或者開發者希望快速部署並試用不同模型的場景。API 也是原型設計或需要靈活訪問各種模型的最佳選擇。
函數本地執行: 適合高性能要求、需要低延遲回應的應用場景,或需要在無網絡環境下運行的情境。這也是開發者需要高度自定義、模型調優或需要頻繁使用模型的場景的理想選擇。


上一篇
Day 6 動手實作!LLM相關練習(一)
下一篇
Day 8 利用LangChain情感分析文本
系列文
除了ChatGPT,你了解生成式AI的其他應用嗎?30天從零到精通的學習與實作12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言